package com.ray.mapper;

import com.ray.bean.DormManageToEnergyRecordsBean;
import com.ray.bean.EnergyBean;
import com.ray.bean.WorkEnergyConsumptionBean;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface EnergyMapper {
    //获取所有的电表
	List<EnergyBean> getAllElectricEnergy(Map map);

    //获取所有的气表
    List<EnergyBean> getAllFlowEnergy(Map map);
	//修改占用状态
	int updateState(Map map);

	//获取电表水表
	EnergyBean getEnergy(Map map);

	//设置采集状态（半小时一次）
	void updateAction(Map map);

	//获取所有仪表条数
	int getAllEnergyCount(Map map);

	//获取所有仪表数据
	List<EnergyBean> getAllEnergyDate(Map map);

	//半小时更新一次仪表记录
	void insertEquipmentRecord(Map map);
	
	/**
	 * 通过水电Id获取水电记录
	* @date 2018年5月2日 下午1:31:39 
	* @author 李斌
	* @return DormManageToEnergyRecordsBean 
	* @throws
	 */
	DormManageToEnergyRecordsBean getEnergyRecordsById(String id);
	
	/**
	 * 仪表用量汇总
	* @date 2018年5月24日 上午8:57:01 
	* @author 李斌
	* @return List<EnergyBean> 
	* @throws
	 */
	List<EnergyBean> getEnergyRecordsSum(Map<String, Object> map);
	
	/**
	 * 仪表用量汇总数据条数
	* @date 2018年5月24日 上午9:06:08 
	* @author 李斌
	* @return int 
	* @throws
	 */
	int getEnergyRecordsCount(Map<String, Object> map);
	
	
	List<EnergyBean> getEnergyByNoPrefixAndState(@Param("energyType")Integer energyType,@Param("state")Integer state,@Param("company")String company);

	/**
	 * 通过仪表id删除车间仪表关联
	 * @param energyId
	 * @return
	 */
	int deleteEnergyWorkShopByEnergyId(String energyId);

	/**
	 * 插入仪表车间记录
	 * @param energyId
	 * @param workShopIdList
	 * @return
	 */
	int insertEnergyWorkShopByEnergy(@Param("energyId")String energyId,@Param("workShopIdList") List workShopIdList);

	/**
	 * 获取公司车间能耗情况
	 * @param map
	 * @return
	 */
	List<WorkEnergyConsumptionBean> getWorkEnergyConsumptionData(Map<String, Object> map);

	/**
	 * 通过仪表编号修改仪表信息
	 * @param map
	 * @return
	 */
	int updateEnergByEergyId(Map<String, Object> map);

	/**
	 * 获取仪表今天之前的使用情况
	 * 获取仪表年和月最大使用值（不含当天），和当月不含当天的使用量
	 * @param map
	 * @return
	 */
	List<EnergyBean> getEnergyTodayBeforeData(Map map);

	/**
	 * 获取当天电表使用情况
	 * @param map
	 * @return
	 */
	List<EnergyBean> getEnergyTodayData(Map<String, Object> map);

	/**
	 * 添加仪表
	 * @param map
	 * @return
	 */
	int addEnergy(Map<String, Object> map);

	/**
	 * 更新仪表度数
	 * @param energyList
	 */
	void updateEnergyNumber(@Param("energyList")List<EnergyBean> energyList);

	/**
	 * 修改仪表是否注册
	 * @param list
	 */
	void setEngerIsRegister(@Param("energyList")List<EnergyBean> list);

	
	/**
	 * 获取仪表工序使用情况
	 * @param energyNo 
	 * @param processId
	 * @return
	 */
	List<String> getUseProcessEnergyNoList(@Param("energyNo")String energyNo,@Param("processId") String processId);

	/**
	 * 获取仪表的能耗数据
	 * @param map
	 * @return
	 */
	List<EnergyBean> materConsumption(Map<String, Object> map);

	/**
	 * 设置仪表是否可用
	 * @param list
	 * @return
	 */
	int setEnergyIsCanUsed(@Param("list")List<EnergyBean> list);

	
	/**
	 * 其他服务器传过来的数据
	 * @param returnList
	 * @return
	 */
	int setDegeeByOtherHost(@Param("energyList")List<EnergyBean> returnList);

	/**
	 * 定时统计昨天使用度数
	 */
	void setYesterdayEnergy();

	/**
	 * 校验
	 * @param map
	 * @return
	 */
	String checkEnergyIsUsed(Map<String, Object> map);




}
